home *** CD-ROM | disk | FTP | other *** search
- 100 '-------------------- VIL組み込み開始 --------------------
- 110 CLEAR ,,512,1024*700,0,0 'メモリ領域設定
- 120 SCREEN 0:CLS
- 130 VIL_W0%=0:VIL_W1%=0:VIL_W2%=0:VIL_W3%=0:VIL_W4%=0 '汎用ワーク変数
- 140 VIL_W5%=0:VIL_W6%=0:VIL_W7%=0:VIL_W8%=0:VIL_W9%=0
- 150 VIL_W0&=0:VIL_W1&=0:VIL_W2&=0:VIL_W3&=0:VIL_W4&=0 '汎用ワーク変数
- 160 VIL_W5&=0:VIL_W6&=0:VIL_W7&=0:VIL_W8&=0:VIL_W9&=0
- 170 VIL_W0$="":VIL_W1$="":VIL_W2$="":VIL_W3$=""
- 180 VIL_I%=0:VIL_J%=0:VIL_K%=0 'ループ変数
- 190 VIL_L%=0 '長さ
- 200 VIL_A$="" '文字列汎用
- 210 VIL_F$="" 'ファイル名汎用
- 220 VIL_C%=15:VIL_CB%=0 '描画色・背景色(0..15)
- 230 VIL_X%=0:VIL_Y%=0:VIL_W%=0:VIL_Z%=0 '左上隅・右下隅座標
- 240 VIL_XL%=0:VIL_YL%=0:VIL_XN%=0:VIL_YN%=0 'X・Y軸方向長さ・個数
- 250 VIL_P%=0 'パレット番号
- 260 VIL_KN%=0 '入力番号
- 270 VIL_K$="":VIL_KY%=0 '入力キー,アスキーコード
- 280 VIL_MX%=0:VIL_MY%=0:VIL_MW%=0:VIL_MZ%=0 'マウス位置
- 290 '
- 300 VIL_E%=0 'エラー番号
- 310 VIL_DIR$="" 'VILディレクトリ
- 320 VIL_FMTDIR$="" 'FMTITLEディレクトリ
- 330 VIL_VER%=200 'VIL VER2.00
- 340 '
- 350 *VIL_CNF '設定ファイル"VIL.CNF"読込
- 360 PRINT"Searching "+CHR$(34)+"VIL.CNF"+CHR$(34)
- 370 PRINT"Searching current directory"
- 380 GOSUB *VIL_ERR_ON:VIL_E%=0
- 390 OPEN "I",#1,"VIL.CNF" 'カレントディレクトリを探す
- 400 IF VIL_E%=63 THEN
- 410 PRINT"Searching root directory"
- 420 VIL_E%=0
- 430 OPEN "I",#1,"\VIL.CNF" 'ルートディレクトリを探す
- 440 IF VIL_E%=63 THEN '見つからなければ設定中止
- 450 PRINT"WARNING:"+CHR$(34)+"VIL.CNF"+CHR$(34)+" not found"
- 460 GOTO *VIL_L_BGN
- 470 ENDIF
- 480 ENDIF
- 490 PRINT"Reading "+CHR$(34)+"VIL.CNF"+CHR$(34)
- 500 WHILE EOF(1)=0
- 510 LINE INPUT #1,VIL_W0$
- 520 IF LEFT$(VIL_W0$,1)<>"'" THEN 'コメント行スキップ
- 530 IF INSTR(VIL_W0$,"VILDIR") THEN 'VILディレクトリ設定
- 540 VIL_DIR$=MID$(VIL_W0$,INSTR(VIL_W0$,"=")+1)
- 550 ELSE IF INSTR(VIL_W0$,"FMTITLEDIR") THEN 'FMTITLEディレクトリ設定
- 560 VIL_FMTDIR$=MID$(VIL_W0$,INSTR(VIL_W0$,"=")+1)
- 570 ENDIF
- 580 ENDIF
- 590 WEND
- 600 CLOSE #1
- 610 '
- 620 *VIL_L_BGN ' VIL リンク開始
- 630 ON ERROR GOTO 0
- 640 *VIL_L_BAS: CHAIN MERGE VIL_DIR$+"VIL_BAS.BAS",*VIL_L_VWM,ALL,DELETE *VIL_L_BAS
- 650 *VIL_L_VWM: CHAIN MERGE VIL_DIR$+"VIL_VWM.BAS",*VIL_L_UTY,ALL,DELETE *VIL_L_VWM
- 660 *VIL_L_UTY: CHAIN MERGE VIL_DIR$+"VIL_UTY.BAS",*VIL_L_END,ALL,DELETE *VIL_L_UTY
- 670 *VIL_L_END ' VIL リンク終了
- 680 '
- 690 GOSUB *VIL_ERR_ON
- 700 GOSUB *VIL_DEFFN:GOTO *VIL_INITEND
- 710 '
- 720 *VIL_ERR_ON:ON ERROR GOTO *VIL_ERR:RETURN
- 730 *VIL_ERR:VIL_E%=ERR:RESUME NEXT
- 740 '
- 750 *VIL_DEFFN
- 760 ' S$:文字列に変換 SS$:左にスペースを詰める S0$:左に0を詰める
- 770 ' P :正の整数 I :整数 R :実数
- 780 DEF FNVIL_P2S$(X&) =MID$(STR$(X&),2)
- 790 DEF FNVIL_P2SS$(X&,Y%) =RIGHT$(" "+STR$(X&),Y%)
- 800 DEF FNVIL_P2S0$(X&,Y%) =RIGHT$("0000000000"+MID$(STR$(X&),2),Y%)
- 810 DEF FNVIL_I2S$(X&) =MID$(STR$(X&),1-(X&>=0))
- 820 DEF FNVIL_I2SS$(X&,Y%) =RIGHT$(" "+STR$(X&),Y%)
- 830 '符号1桁(+-) + 00… + 数値
- 840 DEF FNVIL_I2S0$(X&,Y%) =MID$("+-",1-(X&<0),1) +RIGHT$("0000000000"+MID$(STR$(ABS(X&)),2) ,Y%-1)
- 850 DEF FNVIL_R2S$(X#) =MID$(STR$(X#),1-(X#>=0))
- 860 DEF FNVIL_R2SS$(X#,Y%,Z%)=RIGHT$(" "+STR$(FIX(X#)),Y%)+"." +MID$("0000000000"+STR$(X#)+"0000000000" ,INSTR("0000000000"+STR$(X#),".")+1,Z%)
- 870 DEF FNVIL_R2S0$(X#,Y%,Z%)=MID$("+-",1-(X#<0),1)+RIGHT$("0000000000" +MID$(STR$(FIX(ABS(X#))),2),Y%-1)+MID$("0000000000"+STR$(X#) +"0000000000",INSTR("0000000000"+STR$(X#),".")+1,Z%)
- 880 RETURN
- 890 '
- 900 *VIL_INITEND
- 910 '-------------------- VIL組み込み終了 --------------------
-